package com.denlaku.longan.dao;

import com.denlaku.longan.anno.VarOp;
import com.denlaku.longan.qo.DataPermQuery;
import com.denlaku.longan.qo.Query;
import com.denlaku.longan.vo.DataTag;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author tianx
 */
@Repository
public interface DataTagDao {
    /**
     * 新增数据权限标签
     *
     * @param dataTag 数据权限标签
     */
    @VarOp
    void add(DataTag dataTag);

    /**
     * 修改数据权限标签
     *
     * @param dataTag 数据权限标签
     */
    @VarOp
    void update(DataTag dataTag);

    /**
     * 获取数据权限标签
     *
     * @param query 查询参数
     * @return 数据权限标签
     */
    DataTag get(Query query);

    /**
     * 查询数据权限标签列表
     *
     * @param query 查询参数
     * @return 数据权限标签列表
     */
    List<DataTag> list(DataPermQuery query);

    /**
     * 搜索数据权限标签
     *
     * @param query 查询参数
     * @return 数据权限标签列表
     */
    List<DataTag> search(DataPermQuery query);

    /**
     * 删除数据权限标签
     *
     * @param query 查询参数
     */
    void delete(DataPermQuery query);
}
